package com.gdhz.xiaohengqin.reservation.model.entity;

import com.gdhz.xiaohengqin.reservation.model.Visitor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.relational.core.mapping.Table;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * @author Swallows
 * @date 2025-05-28 17:58
 */
@Getter
@Setter
@NoArgsConstructor
@Table(name = "reservation_record")
public class ReservationRecord implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    private String id;

    /**
     * 预约方式：0=个人预约，1=团队预约
     */
    private String visitType;

    /**
     * 预约类型：0=保护地预约，1=活动预约
     */
    private String visitWay;

    /**
     * 保护地 ID
     */
    private String reserveId;

    /**
     * 保护地名称
     */
    private String natureReserveName;

    /**
     * 活动 ID
     */
    private String activityId;

    /**
     * 活动名称
     */
    private String activityName;

    /**
     * 活动类型（0=科普课程，1=宣传活动）
     */
    private Integer activityType;

    /**
     * 团队名称
     */
    private String teamName;

    /**
     * 访问性质：0=科学研究,1=科普教育
     */
    private String visitNature;

    /**
     * 来访目的
     */
    private String visitPurpose;

    /**
     * 来访日期.格式： yyyyMMdd
     */
    private String visitTime;

    /**
     * 预约开始时间
     */
    private String visitStartTime;

    /**
     * 预约结束时间
     */
    private String visitEndTime;

    /**
     * 审核意见
     */
    private String auditOpinion;

    /**
     * 订单状态：0=待审核，1=待到场，2=未通过，
     * 3=待评价，4=已取消，5=已评价，6=已过期
     */
    private Integer auditState;

    /**
     * 审核时间
     */
    private String auditTime;

    /**
     * 预约编号
     */
    private String visitNumber;

    /**
     * 下单预定时间
     */
    private String bookingTime;

    /**
     * 订单人数
     */
    private Integer visitCount;

    /**
     * 订单金额
     */
//    private Number price;

    /**
     * 紧急救助手机号
     */
    private String bailoutCellphone;

    /**
     * 紧急救助固定电话
     */
    private String bailoutLandline;

    /**
     * 二维码路径
     */
    private String qrCodeImg;

    /**
     * 领队名称
     */
    private String leader;

    /**
     * 领队身份证
     */
    private String leaderIdcard;

    /**
     * 领队手机号
     */
    private String leaderPhone;

    /**
     * 紧急联系人手机号
     */
    private String emergencyContactPhone;

    /**
     * 预定人 ID
     */
    private String bookingtorId;

    /**
     * 预定人姓名
     */
    private String bookingtorName;

    /**
     * 团队来访说明及名单扫描件
     */
//    private String visitorListImg;

    /**
     * 专家认证图片地址
     */
//    private String expertPhotoUrl;

    /**
     * 团队名单图片地址
     */
//    private List<String> teamListImg;

    /**
     * 访客列表
     */
    private List<Visitor> vistors;

    private String url;
//    private LocalDateTime createTime;
//    private LocalDateTime lastVisitTime;
}
